package conm;

import java.util.Random;

/*
 *案例二: 开发验证码
 *
 * */
//注意类名
public class Test02 {
    //程序主入口
    public static void main(String[] args) {
        //目标:掌握产生验证码
        //调用方法并,并传参数
        System.out.println("八位的验证码: " + createCode(8));
        System.out.println("四位的验证码: " + createCode(4));
    }

    //一个功能就是一个方法,以后都如此
    //分析要什么 1.参数列表 2.返回值类型
    //很明显要返回一个字符创类型的验证码 要一个长度int
    public static String createCode(int length) {
        //1.准备一个字符串变量用于拼接每位随机字符作为验证码
        String code = "";
        //创建随机数对象
        Random r = new Random();
        //2.使用循环产生每一位随机字符
        for (int i = 0; i < length; i++) {
            //2. 为当前位置产生一维随机字符,可能是数字,大写,小写
            //4. 随机三位数字,表示当前位置是随机数字0;还是大写1,会死啊是小写2
            int type = r.nextInt(3);//代表0-2
            //进行switch判断
            switch (type) {
                case 0:
                    //随机数字
                    int number = r.nextInt(10);
                    code += number;
                    break;
                case 1:
                    // 随机大写: A -Z 注意大写A是65 -> 65+25  A-Z是逐渐加1
                    char c1 = (char) (r.nextInt(26) + 65);//进行强转
                    code += c1;
                case 2:
                    //随机大写: a - z 97 -> 97+25
                    char c2 = (char) (r.nextInt(26) + 97);
                    code += c2;
            }
        }
        return code;
    }
}


